package com.jumi.microservice.domain;

import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

/**
 * @author Administrator
 */
public class SkuDTO implements Serializable {

    @ApiModelProperty(value = "商品sku id")
    private Long id;

    @ApiModelProperty(value = "商品spu id")
    private Long goodsId;

    @ApiModelProperty(value = "商品sku名称")
    private String goodsName;

    @ApiModelProperty(value = "商品sku主图")
    private String goodsPropertyImage;

    @ApiModelProperty(value = "供应商ID")
    private Long supplyId;

    @ApiModelProperty(value = "物料的商品分类ID")
    private Long cateId;

    @ApiModelProperty(value = "团购价")
    private BigDecimal goodsPrice;

    @ApiModelProperty(value = "白金会员价")
    private BigDecimal platinumPrice;

    @ApiModelProperty(value = "钻石会员价")
    private BigDecimal diamondsPrice;

    @ApiModelProperty(value = "皇冠会员价")
    private BigDecimal kingPrice;

    @ApiModelProperty(value = "接单价格")
    private BigDecimal getOrderPrice;

    /**
     *  20201221 添加默认值为0 redis同步时出现 goodsCostprice为null情况
     */
    @ApiModelProperty(value = "sku成本价")
    private BigDecimal goodsCostprice = BigDecimal.ZERO;

    @ApiModelProperty(value = "运费模板信息")
    private FreightTempDTO freightTempDTO;

    @ApiModelProperty(value = "商品重量(KG)")
    private BigDecimal goodsGrossWeight;

    @ApiModelProperty(value = "商品类型  1：单个商品；2：第三方商品;3:商品组合")
    private Integer goodsType;

    @ApiModelProperty(value = "物料的商品名称")
    private String materialName;

    @ApiModelProperty(value = "物料的商品数量")
    private Integer materialCount;

    @ApiModelProperty(value = "库存")
    private Integer saleStockQuantity = 0;

    @ApiModelProperty(value = "是否失效")
    private Boolean invalid = false;

    @ApiModelProperty(value = "是否是引流商品;0:否；1：是")
    private Integer drainage;

    @ApiModelProperty(value = "是否是海外进口")
    private Integer isImport;

    @ApiModelProperty(value = "商品源国家")
    private Integer goodCountry;

    @ApiModelProperty(value = "sku属性值集合")
    List<GoodsSkuPropertyValueDTO> goodsSkuPropertyValue = new ArrayList<>();

    @ApiModelProperty(value = "属性名称")
    private String specName;

    @ApiModelProperty(value = "设置固定返利;0:否；1：是；（返利接单费固定0.1元，差价0.0元）")
    private Integer fixRebate;

    @ApiModelProperty(value = "商品不发货地区id 逗号分割")
    private String noDeliveryRegion = "";

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getGoodsId() {
        return goodsId;
    }

    public void setGoodsId(Long goodsId) {
        this.goodsId = goodsId;
    }

    public String getGoodsName() {
        return goodsName;
    }

    public void setGoodsName(String goodsName) {
        this.goodsName = goodsName;
    }

    public String getGoodsPropertyImage() {
        return goodsPropertyImage;
    }

    public void setGoodsPropertyImage(String goodsPropertyImage) {
        this.goodsPropertyImage = goodsPropertyImage;
    }

    public Long getSupplyId() {
        return supplyId;
    }

    public void setSupplyId(Long supplyId) {
        this.supplyId = supplyId;
    }

    public BigDecimal getGoodsPrice() {
        return goodsPrice;
    }

    public void setGoodsPrice(BigDecimal goodsPrice) {
        this.goodsPrice = goodsPrice;
    }

    public BigDecimal getPlatinumPrice() {
        return platinumPrice;
    }

    public void setPlatinumPrice(BigDecimal platinumPrice) {
        this.platinumPrice = platinumPrice;
    }

    public BigDecimal getDiamondsPrice() {
        return diamondsPrice;
    }

    public void setDiamondsPrice(BigDecimal diamondsPrice) {
        this.diamondsPrice = diamondsPrice;
    }

    public BigDecimal getKingPrice() {
        return kingPrice;
    }

    public void setKingPrice(BigDecimal kingPrice) {
        this.kingPrice = kingPrice;
    }

    public FreightTempDTO getFreightTempDTO() {
        return freightTempDTO;
    }

    public void setFreightTempDTO(FreightTempDTO freightTempDTO) {
        this.freightTempDTO = freightTempDTO;
    }

    public BigDecimal getGoodsGrossWeight() {
        return goodsGrossWeight;
    }

    public void setGoodsGrossWeight(BigDecimal goodsGrossWeight) {
        this.goodsGrossWeight = goodsGrossWeight;
    }

    public Integer getGoodsType() {
        return goodsType;
    }

    public void setGoodsType(Integer goodsType) {
        this.goodsType = goodsType;
    }

    public Long getCateId() {
        return cateId;
    }

    public void setCateId(Long cateId) {
        this.cateId = cateId;
    }

    public BigDecimal getGetOrderPrice() {
        return getOrderPrice;
    }

    public void setGetOrderPrice(BigDecimal getOrderPrice) {
        this.getOrderPrice = getOrderPrice;
    }

    public BigDecimal getGoodsCostprice() {
        return goodsCostprice;
    }

    public void setGoodsCostprice(BigDecimal goodsCostprice) {
        this.goodsCostprice = goodsCostprice;
    }

    public String getMaterialName() {
        return materialName;
    }

    public void setMaterialName(String materialName) {
        this.materialName = materialName;
    }

    public Integer getMaterialCount() {
        return materialCount;
    }

    public void setMaterialCount(Integer materialCount) {
        this.materialCount = materialCount;
    }

    public Integer getSaleStockQuantity() {
        return saleStockQuantity;
    }

    public void setSaleStockQuantity(Integer saleStockQuantity) {
        this.saleStockQuantity = saleStockQuantity;
    }

    public Boolean getInvalid() {
        return invalid;
    }

    public void setInvalid(Boolean invalid) {
        this.invalid = invalid;
    }

    public Integer getDrainage() {
        return drainage;
    }

    public void setDrainage(Integer drainage) {
        this.drainage = drainage;
    }

    public Integer getIsImport() {
        return isImport;
    }

    public void setIsImport(Integer isImport) {
        this.isImport = isImport;
    }

    public Integer getGoodCountry() {
        return goodCountry;
    }

    public void setGoodCountry(Integer goodCountry) {
        this.goodCountry = goodCountry;
    }

    public List<GoodsSkuPropertyValueDTO> getGoodsSkuPropertyValue() {
        return goodsSkuPropertyValue;
    }

    public void setGoodsSkuPropertyValue(List<GoodsSkuPropertyValueDTO> goodsSkuPropertyValue) {
        this.goodsSkuPropertyValue = goodsSkuPropertyValue;
    }

    public String getSpecName() {
        return specName;
    }

    public void setSpecName(String specName) {
        this.specName = specName;
    }

    public Integer getFixRebate() {
        return fixRebate;
    }

    public void setFixRebate(Integer fixRebate) {
        this.fixRebate = fixRebate;
    }

    public String getNoDeliveryRegion() {
        return noDeliveryRegion;
    }

    public void setNoDeliveryRegion(String noDeliveryRegion) {
        this.noDeliveryRegion = noDeliveryRegion;
    }
}
